package cn.iocoder.yudao.module.train.controller.admin.coursecommodity.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 课程商品管理新增/修改 Request VO")
@Data
public class CourseCommoditySaveReqVO {

    @Schema(description = "课程商品主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27619")
    private Long id;

    @Schema(description = "课程关联id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25821")
    @NotNull(message = "课程关联id不能为空")
    private Long courseId;

    @Schema(description = "课程商品关联老师", requiredMode = Schema.RequiredMode.REQUIRED, example = "25478")
    @NotNull(message = "课程商品关联老师不能为空")
    private Long teacherId;

    @Schema(description = "课程商品封面", example = "https://www.iocoder.cn")
    private String courseCoverUrl;

    @Schema(description = "课程商品价格", example = "9757")
    private BigDecimal commodityPrice;

    @Schema(description = "授课总时长（小时）")
    private Integer teachingAllTime;

    @Schema(description = "每次授课时长（小时）")
    private Integer teachingTime;

    @Schema(description = "开课时间")
    private LocalDateTime beginTime;

    @Schema(description = "结课时间")
    private LocalDateTime endTime;

    @Schema(description = "vip标识", example = "0")
    private String vipFlag;

    @Schema(description = "报名人数")
    private Long applicantNumber;

    @Schema(description = "课程标记(0-推荐1-新课2-畅销3-热门）", example = "0")
    private String courseFlag;

    @Schema(description = "课程名称", example = "芋艿")
    @JsonProperty("name")
    private String name;
    @Schema(description = "老师姓名", example = "王五")
    @JsonProperty("teacherName")
    private String teacherName;


    @Schema(description = "商品名称", example = "javaWeb2024")
    private String commodityName;

    @Schema(description = "商品上架状态", example = "0")
    private String status;
}
